package com.oss.vo.oss.instrument;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.oss.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
public class InstrumentVO extends BaseEntity {
    // ID
    private String id;
    // 父ID
    private String pid;
    private String parentId;
    // 品种/标的/期权合约代码
    private String code;
    // 品种/标的/期权合约名称
    private String name;
    // 品种类别
    private String varietyType;
    // 交易单位
    private Integer volumeMultiple;
    private Integer level;
    // 保证金比率
    private BigDecimal tradeMarginRate;
    // 订阅行情 1:是 0:否
    private Integer subscriptionFlag;
    // 合约过期时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime expirationTime;
    // 子集信息
    List<InstrumentVO> childrenList;
    // 前端展示用这个, 由于异步加载 , 返回时为空
    List<InstrumentVO> children = new ArrayList<>();
    private String lastPriceCode;
    boolean hasChildren;
}